/**
 * Author@ Cheng Feitian
 * Date: 2020-3-21
 * Description: 引用做函数的返回值
 */

#include <algorithm>
#include <iostream>
#include <string>

using namespace std;
const int maxn = 1024;

//引用做函数的返回值
//1. 不要返回局部变量的引用
// int & test01(){
//     int a = 10;
//     return a;
// }

//2. 函数的调用可以作为左值
int & test02(){
    static int a = 10;  // 静态变量，存放在全局区，全局上的数据在程序结束后系统释放
    return a;
}

int main() {

    // int &ref = test01();

    // cout << "ref = " << ref << endl;
    // cout << "ref = " << ref << endl;

    int &ref = test02();

    cout << "ref = " << ref << endl;
    cout << "ref = " << ref << endl;

    test02() = 1000;    //如果函数的返回值是引用，这个函数调用可以作为左值

    cout << "ref = " << ref << endl;
    cout << "ref = " << ref << endl;
    return 0;
}
